/** File: lab2.h - header for CSE 4252 Lab #2
*/

#ifndef __LAB2_INCLUDE
#define __LAB2_INCLUDE

#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

#include "date.h"
#include "month.h"
#include "year.h"

class UI {
        /*
            Flag that indicates if output should be a single month,
              or the entire calendar
        */
        bool debug;
        
        /*
            Flag indicating that UI input is complete, and the program 
            should exit
        */
        bool finished;
        
        /*
            The year that the user specified
        */
        int inputYear;
        
        /*
            The month that the user specified
        */
        int inputMonth;
        
        /*
            The day in the week that the user wanted the first day to represent
        */
        int janFirst;
    public:
        /*
            Constructor that initializes some values
        */
        UI();
        
        /*
            Empty destructor
        */
        ~UI();
        
        /** 
            Indicates if the UI can be safely torn down, or is still processing.
            Parameters: None
            Return: true if the UI can be disposed safely, false otherwise.
        */
        bool isFinished();
        
        /*
            Helper function that prompts the user for input
            Parameters: None
            Return: None
        */
        void promptForInput();
        
        /*
            Setter for the debug flag.
            Parameters:
                bool isDebug the value to set the debug to
            Returns: None
        */
        void setDebugFlag(bool);
        
    private:
        
        /*
            Helper function that displays the general input menu
            Parameters: None
            Return: None
        */
        bool displayMenu();

        /*
            Helper function that displays the year input menu
            Parameters: None
            Return: None
        */
        void promptForYear();

        /*
            Helper function that displays the month input menu
            Parameters: None
            Return: None
        */
        void promptForMonth();

        /*
            Helper function that displays the first day input menu
            Parameters: None
            Return: None
        */
        void promptForJanFirst();
};

/**
*/
int main(int, char**);


#endif